package com.yuexunit.finance.system.action.v1;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.yuexunit.finance.context.FinVersion1;
import com.yuexunit.finance.statistics.action.v1.model.CostInfoDetail;
import com.yuexunit.finance.system.action.v1.model.BlankInfoDetail;
import com.yuexunit.finance.system.action.v1.model.CapitalDetail;
import com.yuexunit.finance.system.action.v1.model.CommonResonInfo;
import com.yuexunit.finance.system.action.v1.model.DataSourceDetail;
import com.yuexunit.finance.system.action.v1.model.FinanceFilesNorm;
import com.yuexunit.finance.system.action.v1.model.FinanceLetterDetail;
import com.yuexunit.finance.system.action.v1.model.LendUnitInfoDetail;
import com.yuexunit.finance.system.action.v1.model.LoansMoneyInfoParam;
import com.yuexunit.finance.system.action.v1.model.LoansMoneyInfoParamDetail;
import com.yuexunit.finance.system.action.v1.model.LoansMoneyRecord;
import com.yuexunit.finance.system.action.v1.model.LoansMoneyReturnInfo;
import com.yuexunit.finance.system.action.v1.model.RankingListDetail;
import com.yuexunit.finance.system.action.v1.model.SessionDetail;
import com.yuexunit.finance.system.action.v1.model.ShipInfo;
import com.yuexunit.finance.system.action.v1.model.SystemBlankDetail;
import com.yuexunit.finance.system.action.v1.model.SystemParamDetail;
import com.yuexunit.finance.system.action.v1.model.UpdateInfo;
import com.yuexunit.finance.system.action.v1.model.UserActiveCardInfoDetail;
import com.yuexunit.finance.system.action.v1.model.UserCardInfoDetail;
import com.yuexunit.finance.system.action.v1.model.UserCardTypeInfoDetail;
import com.yuexunit.fs.action.dto.InquireFileOutput;
import com.yuexunit.page.PageCriteria;
import com.yuexunit.page.PageList;
import com.yuexunit.web.annotation.Action;
import com.yuexunit.web.annotation.Parameter;
import com.yuexunit.web.annotation.Permission;

public interface SystemParamActionApi {
	
	@Permission
	@Action(version = FinVersion1.class, description = "新增系统参数")
	public Long createSystemParam(SystemParamDetail params);

	@Permission
	@Action(version = FinVersion1.class, description = "修改系统参数")
	public void updateSystemParam(SystemParamDetail params);

	@Permission
	@Action(version = FinVersion1.class, description = "查询系统参数详情")
	public SystemParamDetail inquireSystemParam(
			@Parameter(name = "paramId", description = "系统参数ID") Long paramId
	);

	@Permission
	@Action(version = FinVersion1.class, description = "通过参数名查询系统参数值")
	@Parameter(name = "paramValue", description = "系统参数值")
	public String inquireSystemParamByName(
			@Parameter(name = "paramName", description = "系统参数名") String paramName
	);

	@Permission
	@Action(version = FinVersion1.class, description = "查询系统参数列表")
	public PageList<SystemParamDetail> inquireSystemParamList(
			@Parameter(name = "paramName", description = "系统参数", nullable = true) String paramName,
			@Parameter(name = "paramType", description = "参数类型") Integer paramType,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询平台帐户信息")
	public SystemBlankDetail inquireSystemBlankInfo();
	
	@Action(version = FinVersion1.class, description = "查询常规原因")
	public List<CommonResonInfo> inquireCommonSelectorList(
			@Parameter(name = "resonType", description = "原因类型 0:常规原因/1", nullable = true) Long resonType
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "新建费用信息")
	@Parameter(name = "costInfoId", description = "费用信息ID")
	public String createCostInfo(
			@Parameter(name = "costInfoNumber", description = "费用编号") String costInfoNumber,
			@Parameter(name = "costInfoType", description = "费用类型") String costInfoType,
			@Parameter(name = "costInfoRemark", description = "费用说明") String costInfoRemark
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "删除费用信息")
	public void disableCostInfo(
			@Parameter(name = "costInfoId", description = "费用信息ID") Long costInfoId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询费用信息列表")
	public PageList<CostInfoDetail> inquireCostInfoPagelist(
			@Parameter(name = "costInfoNumber", description = "费用编号", nullable = true) String costInfoNumber,
			@Parameter(name = "costInfoType", description = "费用类型", nullable = true) String costInfoType,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "新建银行账户")
	public String createBlankInfo(
			@Parameter(name = "accountBank", description = "开户行") String accountBank,
			@Parameter(name = "accountBankCard", description = "卡号") String accountBankCard,
			@Parameter(name = "accountBankName", description = "开户名") String accountBnakName,
			@Parameter(name = "balance", description = "初始余额", nullable = true) BigDecimal balance,
			@Parameter(name = "remark", description = "备注", nullable=true) String remark
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "修改银行账户")
	public void updateBlankInfo(
			@Parameter(name = "accountInfoId", description = "账户信息ID") Long accountInfoId,
			@Parameter(name = "accountBank", description = "开户行") String accountBank,
			@Parameter(name = "accountBankCard", description = "卡号") String accountBankCard,
			@Parameter(name = "accountBankName", description = "开户名") String accountBnakName,
			@Parameter(name = "balance", description = "初始余额", nullable = true) BigDecimal balance,
			@Parameter(name = "remark", description = "备注", nullable = true) String remark
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询银行账户信息列表")
	public PageList<BlankInfoDetail> inquireBlankInfoPagelist(
			@Parameter(name = "accountBank", description = "开户行", nullable = true) String accountBank,
			@Parameter(name = "accountBankCard", description = "卡号", nullable = true) String accountBankCard,
			@Parameter(name = "accountBankName", description = "开户名", nullable = true) String accountBnakName,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询银行账户信息详情")
	public BlankInfoDetail inquireBlankInfoDetail(
			@Parameter(name = "accountInfoId", description = "账户信息ID") Long accountInfoId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询资金详情")
	public CapitalDetail inquireCapitalDetail();
	
	@Permission
	@Action(version = FinVersion1.class, description = "置顶账户")
	public void topBlankInfo(
			@Parameter(name = "accountInfoId", description = "账户信息ID") Long accountInfoId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "取消置顶账户")
	public void cancelTopBlankInfo(
			@Parameter(name = "accountInfoId", description = "账户信息ID") Long accountInfoId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "新建出借单位")
	public String createLendUnitInfo(
			@Parameter(name = "lendUnitName", description = "出借单位名称") String lendUnitName,
			@Parameter(name = "lendUnitBank", description = "出借单位开户行") String lendUnitBank,
			@Parameter(name = "lendUnitBankCard", description = "出借单位卡号") String lendUnitBankCard,
			@Parameter(name = "lendUnitBankName", description = "出借单位开户名") String lendUnitBankName
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "修改出借单位")
	public void updateLendUnitInfo(
			@Parameter(name = "lendUnitId", description = "出借单位ID") Long lendUnitId,
			@Parameter(name = "lendUnitName", description = "出借单位名称") String lendUnitName,
			@Parameter(name = "lendUnitBank", description = "出借单位开户行") String lendUnitBank,
			@Parameter(name = "lendUnitBankCard", description = "出借单位卡号") String lendUnitBankCard,
			@Parameter(name = "lendUnitBankName", description = "出借单位开户名") String lendUnitBankName
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询出借单位信息列表")
	public PageList<LendUnitInfoDetail> inquireLendUnitInfoPagelist(
			@Parameter(name = "lendUnitName", description = "出借单位名称", nullable=true) String lendUnitName,
			@Parameter(name = "lendUnitBank", description = "出借单位开户行", nullable=true) String lendUnitBank,
			@Parameter(name = "lendUnitBankCard", description = "出借单位卡号", nullable=true) String lendUnitBankCard,
			@Parameter(name = "lendUnitBankName", description = "出借单位开户名", nullable=true) String lendUnitBankName,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询出借单位信息列表")
	public List<LendUnitInfoDetail> inquireLendUnitInfoList(
			@Parameter(name = "lendUnitName", description = "出借单位名称", nullable=true) String lendUnitName,
			@Parameter(name = "lendUnitBank", description = "出借单位开户行", nullable=true) String lendUnitBank,
			@Parameter(name = "lendUnitBankCard", description = "出借单位卡号", nullable=true) String lendUnitBankCard,
			@Parameter(name = "lendUnitBankName", description = "出借单位开户名", nullable=true) String lendUnitBankName
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询出借单位信息详情")
	public LendUnitInfoDetail inquireLendUnitInfoDetail(
			@Parameter(name = "lendUnitId", description = "出借单位ID") Long lendUnitId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "停用出借单位")
	public void stopLendUnitInfoDetail(
			@Parameter(name = "lendUnitId", description = "出借单位ID") Long lendUnitId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "启用出借单位")
	public void useLendUnitInfoDetail(
			@Parameter(name = "lendUnitId", description = "出借单位ID") Long lendUnitId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "新建资金拆入信息")
	public String createLonsMoneyInfo(LoansMoneyInfoParam param);
	
	@Permission
	@Action(version = FinVersion1.class, description = "追加资金拆入")
	public void additionLonsMoneyInfo(
			@Parameter(name = "loansMoneyId", description = "资金拆入信息ID") Long loansMoneyId,
			@Parameter(name = "amount", description = "金额") BigDecimal amount,
			@Parameter(name = "date", description = "时间") Date date,
			@Parameter(name = "additionReason", description = "追加原因") String additionReason,
			@Parameter(name = "remark", description = "备注", nullable=true) String remark
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "资金拆入确认")
	public void confirmLonsMoneyInfoDetail(
			@Parameter(name = "loansMoneyId", description = "资金拆入信息ID") Long loansMoneyId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "删除拆入信息")
	public void deletLonsMoneyInfoDetail(
			@Parameter(name = "loansMoneyId", description = "资金拆入信息ID") Long loansMoneyId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "归还记资金")
	public void returnLonsMoneyInfo(
			@Parameter(name = "loansMoneyId", description = "资金拆入信息ID") Long loansMoneyId,
			@Parameter(name = "amount", description = "金额") BigDecimal amount,
			@Parameter(name = "date", description = "时间") Date date,
			@Parameter(name = "remark", description = "备注", nullable=true) String remark
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "资金拆入详情")
	public LoansMoneyInfoParamDetail inquireLonsMoneyInfoDetail(
			@Parameter(name = "loansMoneyId", description = "资金拆入信息ID") Long loansMoneyId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "资金拆入列表")
	public PageList<LoansMoneyInfoParamDetail> inquireLonsMoneyInfoList(
			@Parameter(name = "lendUnitName", description = "出借单位", nullable = true) String lendUnitName,
			@Parameter(name = "startDate", description = "开始时间", nullable = true) Date startDate,
			@Parameter(name = "financialBatch", description = "财务批次", nullable = true) String financialBatch,
			@Parameter(name = "financingBatch", description = "融资批次", nullable = true) String financingBatch,
			@Parameter(name = "endDate", description = "结束时间", nullable = true) Date endDate,
			@Parameter(name = "confirmState", description = "确认状态", nullable = true) Boolean confirmState,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "资金拆入列表")
	public PageList<LoansMoneyRecord> inquireLonsMoneyRecordPageList(
			@Parameter(name = "loansMoneyId", description = "资金拆入信息ID") Long loansMoneyId,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	

	@Permission
	@Action(version = FinVersion1.class, description = "资金拆入确认")
	public LoansMoneyReturnInfo calLonsMoney(
			@Parameter(name = "loansMoneyId", description = "资金拆入信息ID") Long loansMoneyId,
			@Parameter(name = "cutoffDate", description = "资金拆入信息ID") Date cutoffDate
	);
	
	//===============================================================================================================
	@Permission
	@Action(version = FinVersion1.class, description = "用户卡类别新增")
	@Parameter(name = "cardTypeId", description = "卡类别ID")
	public String createUserCardType(
			@Parameter(name = "cardTypeName", description = "卡类别名称") String cardTypeName,
			@Parameter(name = "rateDiscount", description = "利率折扣") BigDecimal rateDiscount,
			@Parameter(name = "punishDiscount", description = "罚息优惠") BigDecimal punishDiscount,
			@Parameter(name = "exceedDayDiscount", description = "超期天数减免") Integer exceedDayDiscount,
			@Parameter(name = "disposeDayDiscount", description = "处置天数减免") Integer disposeDayDiscount,
			@Parameter(name = "integeralPower", description = "积分倍率") BigDecimal integeralPower
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "用户卡类别修改")
	public void updateUserCardType(
			@Parameter(name = "cardTypeId", description = "卡类别ID") Long cardTypeId,
			@Parameter(name = "cardTypeName", description = "卡类别名称") String cardTypeName,
			@Parameter(name = "rateDiscount", description = "利率折扣") BigDecimal rateDiscount,
			@Parameter(name = "punishDiscount", description = "罚息优惠") BigDecimal punishDiscount,
			@Parameter(name = "exceedDayDiscount", description = "超期天数减免") Integer exceedDayDiscount,
			@Parameter(name = "disposeDayDiscount", description = "处置天数减免") Integer disposeDayDiscount,
			@Parameter(name = "integeralPower", description = "积分倍率") BigDecimal integeralPower
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "停用用户卡类别")
	public void disableCardType(
			@Parameter(name = "cardTypeId", description = "卡类别ID") Long cardTypeId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "启用用户卡类别")
	public void enableCardType(
			@Parameter(name = "cardTypeId", description = "卡类别ID") Long cardTypeId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "用户卡类别列详情")
	public UserCardTypeInfoDetail inquireCardTypeDetail(
			@Parameter(name = "cardTypeId", description = "卡类别ID") Long cardTypeId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "用户卡类别列表")
	public PageList<UserCardTypeInfoDetail> inquireCardTypePageList(
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "用户卡类别列表")
	public List<UserCardTypeInfoDetail> inquireCardTypeList();
	
	@Permission
	@Action(version = FinVersion1.class, description = "用户卡类别新增")
	@Parameter(name = "cardTypeId", description = "卡类别ID")
	public String createUserCard(
			@Parameter(name = "cardNumber", description = "卡号") String cardNumber,
			@Parameter(name = "cardTypeId", description = "卡类别ID") Long cardTypeId,
			@Parameter(name = "beginDateTime", description = "有效期起") Date beginDateTime,
			@Parameter(name = "endDateTime", description = "有效期止") Date endDateTime
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "启用用户卡")
	public void enableCard(
			@Parameter(name = "userCardId", description = "用户卡ID") Long userCardId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "停用用户卡")
	public void disableCard(
			@Parameter(name = "userCardId", description = "用户卡ID") Long userCardId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询用户卡详情")
	public UserCardInfoDetail inquireUserCardInfo(
			@Parameter(name = "userCardId", description = "用户卡ID") Long userCardId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询用户卡详情")
	public UserCardInfoDetail inquireUserCardInfoDetailFromEnterpriseId(
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询用户卡列表")
	public PageList<UserCardInfoDetail> inquireUserCardPageList(
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "开卡")
	@Parameter(name = "acticeCardId", description = "开卡信息ID")
	public String createUserActiveCardInfo(
			@Parameter(name = "cardNumber", description = "卡号") String cardNumber,
			@Parameter(name = "cardFrontFile", description = "卡正面照") String cardFrontFile,
			@Parameter(name = "cardBackFile", description = "卡背面照") String cardBackFile,
			@Parameter(name = "enterpriseId", description = "企业ID-企业端可不传", nullable = true) Long enterpriseId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "开卡审核")
	public void auditUserActiveCardInfo(
			@Parameter(name = "acticeCardId", description = "开卡信息ID") Long acticeCardId,
			@Parameter(name = "auditState", description = "审批状态 0:未知/1:未审批/2:同意/3:拒绝") Integer auditState,
			@Parameter(name = "auditRemark", description = "审核意见") String auditRemark
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询开卡详情")
	public UserActiveCardInfoDetail inquireUserActiveCardInfoDetail(
			@Parameter(name = "acticeCardId", description = "开卡信息ID") Long acticeCardId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询开卡列表")
	public PageList<UserActiveCardInfoDetail> inquireUserActiveCardInfoPageList(
			@Parameter(name = "auditState", description = "审核状态 0:未知/1:未审批/2:同意/3:拒绝", nullable = true) Integer auditState,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "更新员工组织关系")
	public void changeEmployeePosition(
			@Parameter(name = "orgId", description = "组织部门id") Long orgId,
			@Parameter(name = "empId", description = "员工id") Long empId,
			@Parameter(name = "position", description = "职位") String position
	);
	
	//===============================================================================================================================
	
	@Permission
	@Action(version = FinVersion1.class, description = "新增数据来源")
	public String createDataSource(
			@Parameter(name = "dataSource", description = "来源名称") String dataSource
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "更新数据来源")
	public void updateDataSource(
			@Parameter(name = "dataSourceId", description = "来源ID") Long dataSourceId,
			@Parameter(name = "dataSource", description = "来源名称") String dataSource
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "禁用数据来源")
	public void disableDataSource(
			@Parameter(name = "dataSourceId", description = "来源ID") Long dataSourceId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "启用数据来源")
	public void enableDataSource(
			@Parameter(name = "dataSourceId", description = "来源ID") Long dataSourceId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "删除数据来源")
	public void deleteDataSource(
			@Parameter(name = "dataSourceId", description = "来源ID") Long dataSourceId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询数据来源")
	public DataSourceDetail inquireDataSourceDetail(
			@Parameter(name = "dataSourceId", description = "来源ID") Long dataSourceId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询数据来源列表")
	public PageList<DataSourceDetail> inquireDataSourcePageList(
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询数据来源列表")
	public List<DataSourceDetail> inquireDataSourceList();
	
	@Action(version = FinVersion1.class, description = "扫码登陆-获取随机码")
	@Parameter(name = "randomCode", description="随机码")
	public String getRandomCode();
	
	@Permission
	@Action(version = FinVersion1.class, description = "注册随机码")
	public void registRandomCode(
			@Parameter(name = "randomCode", description="随机码") String randomCode
	);
	
	@Action(version = FinVersion1.class, description = "获取sessionUuid")
	@Parameter(name = "sessionUuid", description="sessionUuid")
	public String getSid(
			@Parameter(name = "randomCode", description="随机码") String randomCode
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "传递数据")
	public void passData(
			@Parameter(name = "randomCode", description="随机码") String randomCode,
			@Parameter(name = "data", description="数据") String data
	);
	
	@Action(version = FinVersion1.class, description = "获取数据")
	@Parameter(name = "data", description="数据")
	public String getPassedData(
			@Parameter(name = "randomCode", description="随机码") String randomCode
	);
	
	@Action(version = FinVersion1.class, description = "查询文件信息")
	public List<InquireFileOutput> inquireFiles(
			@Parameter(name = "fileUuids", description="文件UUID") String fileUuids
	);
	
	@Action(version = FinVersion1.class, description = "获取APP升级信息")
	public UpdateInfo getUpdateInfo();
	
	@Permission
	@Action(version = FinVersion1.class, description = "登出")
	public void logout1();
	
	@Action(version = FinVersion1.class, description = "免密登陆")
	public SessionDetail loginWithoutPassword(
			@Parameter(name = "userName", description = "账号名") String userName
	);
	
	@Action(version = FinVersion1.class, description = "通过userId登录")
	@Parameter(name = "sessionUuid", description="会话ID")
	public String loginByUserId(
			@Parameter(name = "userId", description = "账户ID") String userId,
			@Parameter(name = "appKey", description = "appKey") String appKey
	);
	
	@Action(version = FinVersion1.class, description = "创建用户")
	@Parameter(name = "rankingId", description = "排行榜ID")
	public Long createRankingList(
			@Parameter(name = "name", description = "姓名") String name
	);
	
	@Action(version = FinVersion1.class, description = "更新用户")
	public void updateRankingList(
			@Parameter(name = "rankingId", description = "排行榜ID") Long rankingId,
			@Parameter(name = "time", description = "时间") Integer time,
			@Parameter(name = "level", description = "关数") Integer level
	);
	
	@Action(version = FinVersion1.class, description = "查询排行榜列表")
	public List<RankingListDetail> inquireRankingList();
	

	@Action(version = FinVersion1.class, description = "新建消息")
	public String createFinanceLetter(
			@Parameter(name = "userName", description = "用户名") String userName,
			@Parameter(name = "title", description = "标题") String title,
			@Parameter(name = "content", description = "内容") String content,
			@Parameter(name = "followType", description = "跟进类型", nullable = true) String followType,
			@Parameter(name = "followId", description = "跟进ID", nullable = true) String followId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询消息列表")
	public PageList<FinanceLetterDetail> inquireFinanceLetterPageList(
			@Parameter(name = "letterType", description = "消息类型", nullable = true) Integer letterType,
			@Parameter(name = "readFlag", description = "未读标志：0-全部；1-未读；2-已读", nullable = true) Integer readFlag,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询消息列表")
	public List<FinanceLetterDetail> inquireFinanceLetterList(
			@Parameter(name = "letterType", description = "消息类型", nullable = true) Integer letterType,
			@Parameter(name = "readFlag", description = "未读标志：0-全部；1-未读；2-已读", nullable = true) Integer readFlag
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "创建融资附件所需附件标准")
	@Parameter(name = "normId", description="融资附件标准ID")
	public String createFinanceFilesNorm(
			@Parameter(name = "normFileName", description="融资附件标准名称") String normFileName,
			@Parameter(name = "isNotNull", description="是否必填") Integer isNotNull,
			@Parameter(name = "isSign", description="是否需要签署") Integer isSign,
			@Parameter(name = "filesType", description="附件类型") Integer filesType
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "删除融资附件所需附件标准")
	public void deleteFinanceFilesNorm(
			@Parameter(name = "normId", description="融资附件标准ID") Long normId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询融资附件所需附件标准列表")
	public PageList<FinanceFilesNorm> inquireFinanceFilesNormPageList(
			@Parameter(name = "filesType", description = "附件类型", nullable = true) Integer filesType,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询融资附件所需附件标准列表")
	public List<FinanceFilesNorm> inquireFinanceFilesNormList();
	
	@Action(version = FinVersion1.class, description = "文件上传")
	public void testUpload(
			@Parameter(name = "path", description = "分页参数") String path
	);
	
	@Action(version = FinVersion1.class, description = "存量数据初始化仓库ID")
	public void initWarehouseId();
	
	@Action(version = FinVersion1.class, description = "根据箱号查询船信息")
	public ShipInfo inquireShipInfo(
		@Parameter(name = "caseNumber", description = "箱号") String caseNumber,
		@Parameter(name = "waybillNumber", description = "运单号") String waybillNumber
	);
}
